package com.nineyang.bean;

import lombok.AllArgsConstructor;
import lombok.ToString;

/*
lombok主要注解:
    1.@Data
        等价于 @ToString，@EqualsAndHashCode，@Getter，@Setter，@RequiredArgsConstructor，用于生成必要参数的构造方法，
        getter，setter，toString，equals，和hashcode方法。
    2.@Getter/@Setter
        分别用于生成getter和setter方法，可以作用于整个类，也可以作用于特定的字段。
    3.@AllArgsConstructor
        生成一个包含所有实例变量的构造器。
    4.@NoArgsConstructor
        生成一个无参构造方法。e
    5.@RequiredArgsConstructor
        生成包含所有final修饰的变量的构造方法，如果不存在final修饰的实例变量则自动生成无参数构造方法。
    6.@ToString/@EqualsAndHashCode
        生成toString和equals/hashCode方法，这两个注解都有exclude属性，通过这个属性可以自定义toString和equals/hashCode方法。
    7.@Value
        通过这个注解可以创建不可变对象，该注解会给所有属性添加final，给所有属性生成getter方法，自动生成toString、equals和hashCode方法。
    8.@Builder
        使用该注解，自动生成建造模式代码。
    9.@Singular
        辅助@Builder注解，当被建造的对象的属性是一个集合，用该注解标注，可以连续调用集合属性的对应方法完成多个元素添加。
lombok支持多种日志框架的注解，可以根据你使用的日志框架选择合适的注解。
    1.@Slf4j
        自动生成一个org.slf4j.Logger对象
    2.@Log4j
        自动生成org.apache.log4j.Logger对象
    3.@Log4j2
        自动生成一个org.apache.logging.log4j.Logger对象。
 */
@AllArgsConstructor
@ToString(exclude = {"id"})
public class People {
    private int id;
    private String name;
    private int age;
}
